第 8 小节:开源发展趋势

开源背景

首先,我们通过 Erin 在 浅谈开源软件的发展(一):开源软件简史 中对开源软件简史的一段描述,理解开源软件诞生的原因,以及开源软件的核心思想。

​ 上个世纪五六十年代的时候,绝大部分的软件都是由学术界和企业的研究人员合作写出来的,这些软件以公有领域软件(Public-Domain Software)的形式被分享出来,即今天我们所谓的开源软件。这些软件的分享秉持着学术界一向的公开、合作的原则,并没有被商品化。

正如这段话描述的一样,开源软件是为了促进技术交流和行业进步而诞生的。开源的核心精神就在于公开、合作,通过频繁的公开交流和紧密合作,为未来的发展提供更多的可能性。

开源现状

随着计算机技术的发展,尤其是互联网技术和相关企业的兴起,开源软件在操作系统、编译工具链、数据库、WEB服务器、移动操作系统等各个方面已经成 为主流。而且许多企业利用开源软件形成了独特的商业模式。比如谷歌的 Android 操作系统,从 2007 年开源发布第一个版本起,到今天已经发展到 12(S) 版本,占据了智能手机操作系统一半以上的市场份额,谷歌也通过 Android 操作系统在移动互联网这一新兴行业中占据了领先和主导地位。再比如在服务器端广泛使用的关系型数据库 MySQL,在以开源软件和商业许可并行的模式下,得到了快速发展,并在 2008 年作价 10 亿美金由 Sun 收购(后者又在 2009 年被 Oracle 公司以 74 亿美金的高价收购)。相反,以前一直和开源软件做斗争的微软公司,却因为无法快速推出适应市场的 Windows Phone 操作系统,在移动互联网竞争中处于下风。为顺应潮流,微软也开始拥抱开源,比如向Samba项目贡献代码,放弃自己研发多年的大数据项目而选择 Hadoop 为其大数据的核心等。

显然,纵观 IT 行业这些年的发展,开源软件从黑客的理想之国,已经形成了一股推进计算机及相关行业不停进步的巨大力量。很多人可能尚未意识到,我们使用的电脑中运行有开源软件,手机中运行有开源软件,家里的电视也运行有开源软件,甚至小小的数码产品(如电子相框)中也运行有开源软件,尤其是互联网服务器端软件,几乎 全部是开源软件。毫不夸张地说,开源软件已经渗透到了我们日常生活的方方面面。

那么,开源软件尤其是国内的开源软件及社区的现状如何, 发展面临哪些困难和问题?

发展现状

政策支持

开源的发展离不开政策的支持,在鼓励“万众创新”的时代大背景下,开源的蓬勃发展显得恰如其分。2019 年,华经情报网在《2018 年中国开源软件行业发展现状,开源软件整体发展形势向好》文章中,对国内开源政策做了详细说明,以下是部分段落的节选。

2017 年,我国政府对开源的认识进一步提升,对开源软件发展的政策支持力度在不断加强。《信息产业发展指南》明确提出:”支持企业联合高校、科研机构等建设重点领域产学研用联盟,积极参与和组建开源社区”,”支持开源、开放的开发模式”,重点推进云操作系统等基础软件产品的研发和应用。

《软件和信息技术服务业发展规划(2016-2020 年)》中提到:”发挥开源社区对创新的支撑促进作用,强化开源技术成果在创新中的应用,构建有利于创新的开放式、协作化、国际化开源生态”,”支持建设创客空间、开源社区等新型众创空间”,要实施软件”铸魂”工程,重点”构筑开源开放的技术产品创新和应用生态”。这些表述充分说明,开源软件是未来我国软件和信息技术服务业的持续快速发展的重点,也是不断提升我国信息技术创新水平的一个重要基础。

根据统计,2017 年我国最大的开源代码托管平台 Gitee 的活跃用户数已经超过 200 万,增速超过 100%。集聚的各类开源项目接近 300 万个,增速超过 170%,企业用户数从 2017 年的初的 403 家增加到了年末的 2 万余家,付费月均增长达到 33%。近三年托管在开源中国的我国开源软件数量呈现逐年上升趋势,截至 2018 年 2 月,开源中国共收录了 9055 个我国本土开源软件。

开源平台

随着开源在国内生根落地,开源平台的队伍也不断壮大。开源平台是指提供开源技术分享服务的线上平台,主要包括开源镜像站、开源仓库、开源博客。

开源镜像站又称开源镜像仓库,是指提供开源镜像下载源的站点,又分为高效站点与企业站点,比如:清华源、阿里云镜像站等。

开源仓库是指提供开源代码管理仓库的站点,常用的开源仓库有 GitHub、GitLab、Gitee 等站点。

开源博客是指提供开源博客管理的技术分享站点,开源博客非常繁多,比如:开源中国、CSDN、博客园等站点。

想要了解更多开源平台,请参考以下资料:

开源组织

开源组织是指对开放源代码具有管理职责的组织,是开放源代码的编写者、维护者、支持者和促进者。目前已有很多开源组织在维护者日益增长的的开放源代码,如 Apache 软件基金会、Linux 基金会、自由软件基金会等各种开源组织。

此外,实际上,开源组织并不仅仅包含各类开源基金会,很多国际知名的企业组织都是主要的开源贡献者,对开源发展做出了巨大贡献。比如:Alibaba、Baidu、Google、Linkedin、Microsoft、华为等。如果你想要了解更多开源组织,请参考以下资料:

开源项目

开源项目是指由开源贡献者发起的遵守指定开源协议的开放源代码的项目,通常放在开源平台维护和管理,是发展开源社区的基石。你可以在 GitHub、GitLab、Gitee 等开源平台去浏览感兴趣的开源项目,随时可以了解和参与任何一个开源项目,甚至成为其中的核心贡献者。开源项目是开源世界的未来,是未来所有的可能性,想要持续不断发展,也需要孵化更多的优秀开源项目。

困难和问题

任何新鲜事物的产生都是需要时间来慢慢适应,然后才能找到与现有事物的平衡点。虽然现在国内的开源形式较好,但发展开源并非是一帆风顺的。

1.开源需要付出很多精力去维护,必然不能依靠个人的力量去管理维护,由于投入精力的不足,往往会导致项目胎死腹中的情况。

2.开源项目获取关注度的方式有限,一个项目从孵化到使用,经历的时间往往会比较长,在从零到一的过程中,开源者大多需要经历孤军奋战、无人问津的局面,再加上工作生活上的压力,项目可能会因此戛然而止。

3.开源项目回报率太低,项目优秀与否,更多的是在技术上得到的认可,但物质方面却一直“歉收”,因此,项目可能因为资金问题而折戟。

4.开源项目没有明确规划,开源者对项目的前瞻性不够,或者开源组织对项目的信心不足,都会导致项目的遗憾中断。比如大名鼎鼎的Dubbo就曾经一度停摆,直到 2017 年才重启回归。

但是,我们要坚信「方法总比困难多」,开源的问题用开源的方式解决。精力不足,就聚集更多人的力量,共同发展;关注度不够,在互相鼓励的同时,多参加业内活动,提高曝光度;资金困难,就想办法通过多种渠道获取资金支持;缺少规划,多去沟通发现志同道合的朋友,共同出谋划策!

虽然路途遥远,但要相信「行则将至」。

开源趋势

开源协议趋势

2020 年,AYALA GOLDSTEIN 通过收集开源软件信息,并对其进行分析,分析结果表明:67%的开放源代码选择了更为宽松的开源协议。这意味着开源者在创建开源项目时,会选择相对自由的方式去分享,心态上显得更加开放。下面附上原文链接:

开源生态趋势

2020 年 10 月,中国信息通信研究院发布了《开源生态白皮书(2020 年)》。其中指出,开源技术在目前云计算、大数据、人工智能领域发展迅猛,已经成为技术主流。随着开源规模的扩大,国内开源数量增长的同时,也覆盖了全栈技术领域,而开源企业数量也在不断增长,开源已经遍布各个行业,成为企业商业布局的重要手段。当然,随着开源数量的爆发式增长,也带来了众多挑战。开源的发展伴随着开源风险,开源基金会对开源技术提供了强有力的帮助,但仍需构建完整的开源治理体系。其中就指出了常见的开源技术中存在的许可证风险,以及安全漏洞风险。此外,白皮书中还分析了开源生态发展趋势,提出了三点发展建议,并在文末附录了风险扫描方法及实际案例。更多开源生态信息,请阅读原文进行了解。

来源:中国信息通信研究院

「开源+」时代

「开源+」时代是指,依托开源项目基础,组建自己的服务、业务、团队等(在开源许可认证内),减少了很多维护成本。

  • 开源+ IT 服务提供商:在每种情况下,都应对软件需求进行单独评估–使用开源软件有很多充分的理由。使用闭源软件时可能产生的优势,例如通常仅适用于专有软件的进一步开发或支持,可以通过与有能力的 IT 服务提供商合作,为开源带来巨大优势。拥有合适的软件和出色的 IT 资源的公司处于创造最佳数字未来的理想位置。 IT 服务提供商或内部 IT 团队可以接管各个定制,开发和支持,而不仅限于一种软件。在选择 IT 合作伙伴时,建议不仅要注意技术能力,还要考虑项目管理和实施的方法,变更管理质量以及 IT 服务提供商的文化和思维方式。

开源软件代表了一种新的技术产生方式。顶尖的高校研究成果很多都是以开源形式发布的,顶尖公司(如谷歌)的技术架构中,每套系统基本都有其对应的开源项目。

  1. 开源社区的运作越来越职业化。自由参与和自组织时代已经过去,近年来,开源逐步过渡到公司化运作模式。Linux 基金会下的很多项目,比如核心基础架构联盟(Core Infrastructure Initiative,CII),都是各公司出钱,把钱放在一起经营,更像是一个合资公司;OpenStack 等基金会有明确的章程、组织结构、晋升机制、会议制度等。开源社区的运作越来越职业化。
  2. 开源成为另一种标准制定方式。电信领域存在设备对接,因而有着非常严格的规范和行业标准。同样,IT 领域行业差异性大,各公司通过代码发言,在社区用代码的方式完成与其他厂商的对接和配合。从云计算 OpenStack 的接口定义等社区实践来看,开源已成为另一种标准制定方式,标准组织开源化已成趋势。
  3. 开源重新定义了集成和被集成的关系。过去,IBM、惠普等大厂商都有各自的生态合作伙伴规程,策略都围绕本公司集成的。从云计算开始,这种方式发生了微妙的变化,开源扮演着集成的身份,各厂商(比如存储、网络、防火墙等厂商)都到开源平台上进行集成和对接。

开源与商业化

如果你已经了解了各种开源协议,相信你已经成功摆脱了「开源=免费」的错误理解。就像「开源=免费」这类常见误区一样,大家可能会想当然地认为开源与商业化毫无关系,或者认为开源与商业化是互斥的。

用一个不知是否恰当的比喻:当今的开源盛世,像极了 14 世纪到 16 世纪的文艺复兴。而随着知识付费时代的到来,对于开源发展而言,此时推动开源的商业化是最好时间节点。开源的商业化探索,不仅是对开源贡献者的回馈,更是促进开源社区发展的「强心剂」。

开源软件与商业软件的对比

《易传·系辞上传》有云:「易有太极,是生两仪」。开源软件与商用软件的关系就像太极一样,两者并非互相对立、互相矛盾的,而是互相促进、相辅相成的。在这短短几十年中,开源与商用彼此交织,通过制定完善的规定与制度,共同推动着行业发展。

随着开源社区的发展,开源软件已经不再是商用软件的简单模仿,而是开始在行业内发出更大的声音,引领着行业发展的方向。从商业角度看,很多开源软件像是商用软件的模仿,例如:从最早的Linux(模仿各类商用 Unix)、Eclipse(模仿 Ⅴisual Studio)、Apache Hadoop(模仿谷歌三篇经典论文成果),到这几年耳熟能详的:Xen/KVM(模仿 VMWare)、OpenStack(模仿 Amazon AWS)等。而在容器技术方面,没有任何一家公司拥有最前沿的技术,也没有公司率先在容器技术上获得足够的回报,所有公司都在一个起跑线上。这也是为什么,在容器技术兴起的 2014 年,开源技术可以不断牵引着整个行业的发展方向。

而对于商用软件而言,也并非从此不再有用武之地。开源软件的发展较为自由,主要依靠开源贡献者推动,未来发展存在不可确定性,且很难做到商用软件的服务与支持。而商用软件的标准化产品、优质长久的技术服务,使得它仍然是一个非常可靠的选择,依旧可以巍然屹立在行业内。

正所谓,检验产品的唯一标准,就是市场。一方面,开源软件的低成本和灵活性,使得它在市场上野蛮生长。另一方面,商用软件的稳定性和标准化,使得它可以持续为客户提供支持。凡是都有两面性,究竟孰优孰劣,就交给时间和市场吧。下面列举了开源软件与商用软件的优缺点对比与描述,以供大家参考。

开源软件与商用软件对比

输入图片说明

输入图片说明

开源软件的优缺点描述

开源软件 描述
优点 成本 开源最重要的优势是成本。在软件上节省下的开支可以让企业在其他地方进行投资,比如建设更快的网络或更快的存储阵列,又或者向员工支付更高的工资。
灵活 开源软件灵活性体现在能够定制和修改源代码
无要求 避免繁琐头疼的许可或激活要求是开源软件另一项值得注意的好处, 它可以让公司从一些潜在的风险中解放出来,比如违反了专有软件使用的授权。
自由 最后,自由是开源的优势。商业软件可能会纠缠不清,也会使企业依赖供应商,被动接受不需要的功能。此外,一个供应商的退出可能会对使用该专有软件的企业产生负面影响,但是开源软件通常会持续很长时间,因为有一个开发者社区。
缺点 支持差 开源软件最大的一个缺点是支持服务不到位 (除了付费支持订阅), 你懂得!
文档弱 很多开源产品缺乏良好的文档记录,或者说就根本就没有文档记录。在许多情况下,你会发现文档已经过时了无用了
复杂性 开源软件或许很强大,但也很难学习和管理。当出现问题时,试图解决问题是一个挑战,特别是在缺乏支持的情况下。
更容易发现漏洞 最后,因为开源,任何人都可以看到源代码,这可能会变成一个缺点。如果代码包含了可以被利用的漏洞,恶意者可能会利用这些漏洞。如果没有专门的供应商来发布更新,修补程序可能会比较慢。

商用软件的优缺点描述

商用软件 描述
优点 单一供应商 通常商业软件包括“一站式购物”体验,即单个供应商可以提供你所需的所有应用程序和工具。微软就是一个很好的例子,它销售操作系统、数据库、办公软件等各种应用软件、还有开发工具等等。相比之下,开源软件却比较零碎。
企业级产品 商业软件通常是为具有大量特性的大型企业量身定做的。供应商很清楚行业标准和标准公司的需求,并将这些概念包含在他们的编程中,这可以帮助公司保持竞争力。
专业的接口 商业软件提供了一个更好的、更标准的接口,它通常适合大多数用户的需求。
日常更新 商业软件经常更新,不仅是修补漏洞,也是为了从客户那里获得更多的钱来进行付费升级。
不需要编程 你的企业可能不需要自定义或向软件添加代码,因此开放源码的特殊诱惑对你的业务来说是微不足道的,而商业软件是开箱即用。
集成 许多商业软件与其他应用程序集成,以便更好地使用和方便。例如,微软的 Lync 即时消息客户端与 Microsoft Outlook 集成,因此在查看电子邮件时,可以看到人们的可用性状态,以及即时消息会话被保存到 Outlook 中。
缺点 产品臃肿 商业软件可能包含大量臃肿和不必要的组件或功能。虽然你可以只安装需要的组件,但是对于选项,大部分人其实并不清楚这些组件的作用,只能选择盲目地选择全部安装。
额外的费用 除了成本问题,有时候还会包含一些让你意外的额外费用。如月度或年度费用,更新费用的上涨,或其他隐藏的因素。
供应商锁定 “一站式购物”导致,你的企业最终可能会过度依赖于供应商,被锁定在一个封闭的系统中。
替换很难 害怕浪费钱迫使企业会继续使用那些可能无法完全满足他们利益的产品。切换到竞争或替代软件的困难包括担心必须从头再来,更换一个软件,再培训人员等其他原因。

参考 各有利弊,开源和商业软件应该怎么选?

开源的商业化

回首看开源发展的这些年,提供给我们研究的开源项目成功的案例有很多。众多优秀开源项目:GNU/Linux、MySQL、Red Hat、Ubuntu、Apache、OpenJDK、Firefox、Spring 等。现如今,随着开源社区的不断发展,各大企业纷纷拥抱开源,利用开源进行商业布局。因此,我们有充分的理由可以认为“开源是可以进行商业化的”。

那么如何进行商业化呢?这个问题并没有一份标注答案,每个成功的开源项目都有着不同的商业化轨迹,但或许能够从它们的共性上找到答案。首先,需要考虑项目是否已经具备商业化的价值,如果项目不够成熟,无法承受住市场的检验,必定是无法商业化的。其次,需要对项目商业化模式有清晰的认识,不同的商业模式有不同的商业化属性。最后,需要做好项目的维护工作,保持团队和社区的活跃,对使用者而言,更能相信该项目是一个稳定的开源项目。

重大的并购案例

  • 1999 年 Red Hat 收购 Cygnus Solutions(6.75 亿美元)
  • 2003 年 Novell 收购SUSE(2.1 亿美元)
  • 2005 年 Oracle 收购 InnoDB
  • 2006 年 Oracle 收购 SleeepyCat
  • 2006 年 Red Hat 收购 JBoss(3.5 亿美元)
  • 2007 年 Apple 收购 CUPS
  • 2007 年 Sourcefire 收购 ClamAV
  • 2007 年 Citrix 收购 XenSource(5 亿美元)
  • 2008 年 Sun 收购 MySQL(10 亿美元)
  • 2008 年 SpringSource 收购 Covalent Technologies
  • 2009 年 Oracle 收购 Sun(74 亿美元)
  • 2009 年 VMware 收购 Spring Source(4.2 亿美元)
  • 2018 年 Microsoft 收购 GitHub(75 亿美元)
  • 2019 年 IBM 收购 Red Hat(340 亿美元)

小结

本文讲述了开源的背景,分析目前开源发展的现状以及遇到的困难与问题,通过开源协议、开源生态、“开源+”时代三个小节说明了目前开源发展的趋势,列举了开源软件与商业软件的优势与弊端,借助开源商业化的成功案例,讨论和探索开源商业化的方法。希望通过本篇文章,能够让大家对开源发展趋势有一定的了解和认知,为开源发展做出自己的贡献!

参考资料

本部分内容贡献者

欧建深tonels哦是吗taotieren西狩